#include <stdio.h>
#include <stdlib.h>
#include <string.h>

int main(int argc, char** argv)
{
	if(argc != 3)
	{
		printf("参数: [明文] [移位数]\n");
	}
	//初始化
	int step = atoi(argv[2]);//移位数
	const char*  plain_text = argv[1];//指向明文argv[1]
	int len = strlen(plain_text)+1;//明文长度,包括最后的\0
	char * cipher = (char*)malloc(len*sizeof(char));//密文
	int i=0;
	step %= 26;
	
	/*
	printf("plain text = %s \n", plain_text);
	printf("step = %d \n", step);
	printf("len = %d \n", len);
	*/
	
	//遍历字母，移位变换
	/*
	while(i<len-1)
	{	
		//printf("plain_text[%d]=%c\n",i,plain_text[i]);
		cipher[i] = (plain_text[i]%'a'+step)%26+'a';
		i++;
	}
	*/
	for(i=0;i<len-1;i++)
	{	
		//printf("plain_text[%d]=%c\n",i,plain_text[i]);
		cipher[i] = (plain_text[i]%'a'+step)%26+'a';
	
	}
	
	cipher[len-1]=0;
	printf("cipher is: %s \n", cipher);
	return 0;
}

/*
 *注意，目前只能处理英文的小写，甚至无法处理普通的数字、符号
 而且只能做简单的加密处理。
 * */
